_Pragma("once")

#include "sdlengine.hpp"
#include "texture_storage.hpp"
using namespace sdl_engine;

enum WidgetID {
    TOOLBOX_LAYOUT = 0,
    TOOLBOX_WINDOW,
    TOOLBOX_FOLDWINDOW,
    TOOLBOX_BUTTON,
    TOOLBOX_IMAGEBUTTON,
    TOOLBOX_CHECKBOX,
    TOOLBOX_LABEL,
    TOOLBOX_SLIDEBAR,
    TOOLBOX_INPUTBOX,
    TOOLBOX_TREELIST,

    TREELIST_WINDOW,
    TREELIST,
};

class GuiEditor: public App {
public:
    void Init() override;
    void Shutdown() override;
    void Render(Renderer&) override;

private:
    TextureStorage storage_;
    gui::TreeList::Node* curNode_ = nullptr;
    gui::TreeList* treelist_ = nullptr;
    gui::LinearLayout* treelistLayout_ = nullptr;
    int widgetNum_ = 0;

    void loadImages();
};
